"use strict";

var uk = require('./def.js');

/** 定义卡牌模板 */
uk.t_cards = {};

/** 牌定义
 *  id
 *  name:类型
 *  cost:消耗
 *  target:目标类型，self或者target
 *  act:执行什么动作
 *  */
uk.def_card=function(id,name,cost,target,act){
    var c = {
        /** ID */
        id:id,
        /** 名称 */
        name:name,
        /** 消耗 */
        cost:cost,
        /** 目标 */
        target:target,
        /** 动作 */
        __action:act,
        action:function(src,tag,changed){
            this.__action.call(this,src,tag,changed);
        }
    };
    for(var i in c.cost){
        /**保证为正数 */
        c.cost[i] = Math.abs(c.cost[i]);
    }
    uk.t_cards[id] = c;
};

uk.def_card(1,"木剑",{},uk.target_types.ENEMY,function(src,tag,changed){
    uk.actions.attack(src,tag,{hp:1},changed);
});

uk.def_card(2,"眼镜蛇",{mp:1},uk.target_types.ENEMY,function(src,tag,changed){
    uk.actions.add_buff(src,tag,2,changed);
});

uk.def_card(3,"木盾",{mp:2},uk.target_types.SELF,function(src,tag,changed){
    uk.actions.add_buff(src,tag,3,changed);
});

/**无视对手防御，造成2点伤害 */
uk.def_card(4,"隔山打牛",{mp:3},uk.target_types.ENEMY,function(src,tag,changed){
    var oldef = tag.props.def;
    tag.props.def = 0;
    uk.actions.attack(src,tag,{hp:2},changed);
    tag.props.def = oldef;
});

/**立刻恢复1点生命值，从下回合开始每回合开始前恢复2点生命值，持续3回合 */
uk.def_card(5,"青囊书",{mp:2},uk.target_types.SELF,function(src,tag,changed){
    uk.actions.recover(src,tag,{hp:1},changed);
    uk.actions.add_buff(src,tag,1,changed);
});